(關於NPM安裝模組的部份會找時間補充到前一天或是使用到時順便介紹)
今天我們要建立一個可以讓使用者存取檔案的網站伺服器程式。
今天用到的都是Node.js內建模組,共有四個
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
//建立一個伺服器
var server = http.createServer(function(req,res){
	//收到網址要求並將其解析
	var filename = url.parse(req.url).pathname;
	//將解析後的要求轉為檔案路徑
	var filepath = path.join(__dirname,filename);
	//判斷路徑下的檔案是否存在
	fs.exists(filepath,function(exists){
		//不存在,回傳404頁面給客戶端跳出
		if(!exists){
			//前者404為HTTP狀態碼,後面則是內容類型,這邊是HTML文字,編碼用utf-8
			res.writeHead(404,{'Content-Type': 'text/html; charset=utf-8'});
			res.end('<h1 style="color:red">404 Not Found!</h1>\n');
			return;
		}
		//存在,則將存取檔案內容呈現在瀏覽器上
		fs.readFile(filepath,function(err,content){
			res.writeHead(200,{'Content-Type':'text/html; charset=utf-8'});
			//存取過程失敗則會執行此行
			if (err){
				res.end('<h1 style="color:red">存取失敗</h1>\n');
			}
			res.end(content);
		})
	})
});
//監聽port:12345
server.listen(12345);
//網址為本地端:127.0.0.1:12345
console.log('Server Running!');
實作這個程式後,體認了解到檔案通常一開始宣告的檔案內容類型及編碼,能夠讓瀏覽器更正確的去解讀這一份檔案,反之也可以裡用來做些不好的事情。
而關於讀取檔案這一塊,應該也能做到權限控管才是。
對於後端流程今天有一點感覺了!